www.gusucode.com > XYCMS PHP留言板源码 v1.8PHP源码程序 > XYCMS PHP留言板源码 v1.8/xycmslyb_v1.8/xycmslyb_v1.8/Libs/Class/page.class.php
<?php class page_link{ var $page;//当前页码; var $firstcount; //(数据库)查询的起始项; var $total; //数据总数 var $displaypg;//每页显示数据条数 var $get_txt; //页码标示字段 var $url;//页面地址 var $lastpg;////最后页,也是总页数 function page_link($total,$displaypg=30,$get_txt='page',$url=''){ $lastpg=ceil($total/$displaypg); $this->lastpg=$lastpg; $this->page=(intval($_GET[$get_txt])=='')?1:min(intval($_GET[$get_txt]),$lastpg); $this->total=$total; $this->displaypg=$displaypg; $this->get_txt=$get_txt; $this->url=($url=='')?$_SERVER["REQUEST_URI"]:$url; $this->firstcount=($this->page-1)*$displaypg; } //url网址处理函数:URL后加页码查询信息待赋值 function get_new_url(){ $url=$this->url; $parse_url=parse_url($url); $url_query=$parse_url["query"]; //单独取出URL的查询字串 if($url_query){ //因为URL中可能包含了页码信息,我们要把它去掉,以便加入新的页码信息。 //$url_query=ereg_replace("(^|&)".$this->get_txt."=[0-9]+",'',$url_query); php5.3版本不支持ereg_replace $url_query=preg_replace("(^|&)".$this->get_txt."=[0-9]+",'',$url_query); //将处理后的URL的查询字串替换原来的URL的查询字串: $new_url=str_replace($parse_url["query"],$url_query,$url); //$new_url=str_replace("'","",$new_url); //在URL后加page查询信息,但待赋值 if($url_query)$new_url.="&".$this->get_txt; else $new_url.=$this->get_txt; }else { $new_url=$url."?".$this->get_txt; } return $new_url; } ////输出分页导航条代码: function show_link(){ $pagenav="显示第 <B>".($this->total?($this->firstcount+1):0)."</B>--<B>".min($this->firstcount+$this->displaypg,$this->total)."</B> 条记录,共 $this->total 条记录 "; //如果多于一页: if($this->lastpg >1){ $prepg=$this->page-1; //上一页 $nextpg=($this->page==$this->lastpg ? 0 : $this->page+1); //下一页 $url=$this->get_new_url(); $pagenav.="<a href='$url=1'>首 页</a> "; if($prepg) $pagenav.=" <a href='$url=$prepg'>上一页</a> "; else $pagenav.=" 上一页 "; if($nextpg) $pagenav.=" <a href='$url=$nextpg'>下一页</a> "; else $pagenav.=" 下一页 "; $pagenav.=" <a href='$url=$this->lastpg'>末页</a> "; //下拉跳转列表,循环列出所有页码: $pagenav.=" 到第 <select name='topage' size='1' onchange='javascript:window.location=\"$url=\"+this.value'>\n"; for($i=1;$i<=$this->lastpg;$i++){ if($i==$this->page) $pagenav.="<option value='$i' selected>$i</option>\n"; else $pagenav.="<option value='$i'>$i</option>\n"; } $pagenav.="</select> 页,共 $this->lastpg 页"; } return $pagenav; } } ?>